
#include "lvgl.h"
#include "func_win.h"
#include "usart.h"



LV_FONT_DECLARE(major_font_30);//声明字体  标题栏
LV_FONT_DECLARE(major_font_24);//声明字体  正文
LV_FONT_DECLARE(major_font_20);//声明字体  正文
LV_FONT_DECLARE(major_font_16);//声明字体  正文


static lv_obj_t *version_win = NULL;//main_win窗口容器



//主页按键
static void P11_event_btn_h_cb(lv_event_t* e)
{
	  lv_obj_t * obj = lv_event_get_target(e);        // 获取触发事件的部件(对象)
    lv_event_code_t code = lv_event_get_code(e);    // 获取当前部件(对象)触发的事件代码

    switch(code){
        case LV_EVENT_VALUE_CHANGED:
            printf("LV_EVENT_VALUE_CHANGED\n");
            break;
				
				case LV_EVENT_RELEASED:		//按键抬起
						printf("released\r\n");			
						lv_obj_del(version_win);	//删除当前界面
						test_win_create();		//返回主界面				
						break;
				
        default:
            //printf("NONE\n");
            break;
    }
}


//菜单按键
static void P11_event_btn_m_cb(lv_event_t* e)
{
	  lv_obj_t * obj = lv_event_get_target(e);        // 获取触发事件的部件(对象)
    lv_event_code_t code = lv_event_get_code(e);    // 获取当前部件(对象)触发的事件代码

    switch(code){
        case LV_EVENT_VALUE_CHANGED:
            printf("LV_EVENT_VALUE_CHANGED\n");
            break;
				
				case LV_EVENT_RELEASED:		//按键抬起
						printf("released\r\n");			
						lv_obj_del(version_win);	//删除当前界面
						menu_win_create();		//返回菜单界面				
						break;
				
        default:
            //printf("NONE\n");
            break;
    }
}


//返回按键
static void P11_event_btn_r_cb(lv_event_t* e)
{
	  lv_obj_t * obj = lv_event_get_target(e);        // 获取触发事件的部件(对象)
    lv_event_code_t code = lv_event_get_code(e);    // 获取当前部件(对象)触发的事件代码

    switch(code){
        case LV_EVENT_VALUE_CHANGED:
            printf("LV_EVENT_VALUE_CHANGED\n");
            break;
				
				case LV_EVENT_RELEASED:			//按键抬起
						printf("released\r\n");			
						lv_obj_del(version_win);		//删除当前界面
						about_win_create();			//返回菜单界面				
						break;
				
        default:
            //printf("NONE\n");
            break;
    }
}







//创建菜单界面
void version_win_create()
{
	printf("state win creat\r\n");
	
	static lv_style_t obj_style;
  lv_style_reset(&obj_style);
  lv_style_init(&obj_style); 					// 样式初始化
  lv_style_set_radius(&obj_style, 0); // 设置样式圆角弧度  

	version_win = lv_obj_create(lv_scr_act());  // 创建一个屏幕来模拟容器
	
	if(version_win != NULL)//创建成功
	{
		printf("work create success\r\n");
		//设置窗口特性
		lv_obj_set_style_pad_all(version_win,0,0);//padding改为0-->防止conent内缩20像素
    //lv_obj_set_style_bg_color(test_win, lv_palette_main(LV_PALETTE_NONE), 0);//不设置背景色就默认白色		
    lv_obj_set_size(version_win, 320, 480);
    lv_obj_add_style(version_win, &obj_style, 0);
		lv_obj_set_scrollbar_mode(version_win,LV_SCROLLBAR_MODE_OFF);//不显示滚动条
		


    /* 创建下方3个按键 */		
		static lv_style_t btn_style;
	  lv_style_reset(&btn_style);
		lv_style_init(&btn_style); // 样式初始化
		
    lv_obj_t * btn_h = lv_btn_create(version_win);       // 创建一个btn部件(对象),他的父对象是活动屏幕对象
		lv_obj_t * btn_m = lv_btn_create(version_win);
		lv_obj_t * btn_r = lv_btn_create(version_win);
    
		
		lv_style_set_radius(&btn_style, 5);//设置圆角
		//lv_style_set_bg_opa(&btn_style, LV_OPA_COVER);//背景透明
		lv_style_set_bg_color(&btn_style, lv_palette_lighten(LV_PALETTE_BLUE_GREY,3));//背景颜色  lv_palette_main-->调色板
		lv_style_set_border_width(&btn_style, 2);//边框
		lv_style_set_width(&btn_style,80);
		lv_style_set_height(&btn_style,50);
		
		lv_obj_set_align(btn_h,LV_ALIGN_BOTTOM_LEFT);//设置对其位置
		lv_obj_set_align(btn_m,LV_ALIGN_BOTTOM_MID);
		lv_obj_set_align(btn_r,LV_ALIGN_BOTTOM_RIGHT);
		
		//给按键添加回调函数
		lv_obj_add_event_cb(btn_h, P11_event_btn_h_cb, LV_EVENT_RELEASED, NULL);
		lv_obj_add_event_cb(btn_m, P11_event_btn_m_cb, LV_EVENT_RELEASED, NULL);
		lv_obj_add_event_cb(btn_r, P11_event_btn_r_cb, LV_EVENT_RELEASED, NULL);
				
		lv_obj_add_style(btn_h, &btn_style, 0);
		lv_obj_add_style(btn_m, &btn_style, 0);
		lv_obj_add_style(btn_r, &btn_style, 0);

		//给3个按键添加文本
		lv_obj_t *label_h = lv_label_create(btn_h); // 创建标签文本	
		lv_obj_set_style_text_font(label_h, &major_font_24, 0);        // 设置标签文本
		lv_label_set_text(label_h, "主页"); // 设置文本

		lv_obj_t *label_m = lv_label_create(btn_m); // 创建标签文本	
		lv_obj_set_style_text_font(label_m, &major_font_24, 0);        // 设置标签文本
		lv_label_set_text(label_m, "菜单"); // 设置文本
		
		lv_obj_t *label_r = lv_label_create(btn_r); // 创建标签文本	
		lv_obj_set_style_text_font(label_r, &major_font_24, 0);        // 设置标签文本
		lv_label_set_text(label_r, "返回"); // 设置文本


		
		
		//下面创建放置文本的容器框
		//设置特性
		static lv_style_t p11_text_win_style;//obj1放置文本
    lv_style_reset(&p11_text_win_style);
    lv_style_init(&p11_text_win_style); // 样式初始化
		
		//为此界面的对象放置文本的容器框统一设置样式
    lv_style_set_radius(&p11_text_win_style, 3); // 设置样式圆角弧度
    lv_style_set_bg_color(&p11_text_win_style,lv_palette_lighten(LV_PALETTE_GREY,2));//设置背景颜色
    lv_style_set_border_width(&p11_text_win_style, 2);//边框
    lv_style_set_border_color(&p11_text_win_style,lv_palette_main(LV_PALETTE_BLUE_GREY));
    lv_style_set_outline_width(&p11_text_win_style,2);//外边框
		lv_style_set_outline_color(&p11_text_win_style,lv_palette_main(LV_PALETTE_BLUE_GREY));
		
		lv_style_set_shadow_width(&p11_text_win_style,25);         //设置样式阴影宽度
    lv_style_set_shadow_color(&p11_text_win_style,lv_palette_main(LV_PALETTE_NONE));  //设置样式阴影颜色
    lv_style_set_shadow_ofs_x(&p11_text_win_style,5);         //设置样式x轴偏移位置
    lv_style_set_shadow_ofs_y(&p11_text_win_style,10);         //设置样式x轴偏移位置		

	  lv_obj_t * p11_textwin_1 = lv_obj_create(version_win);//创建一个对象
    lv_obj_set_style_pad_all(p11_textwin_1,0,0); //padding 改为0
    lv_obj_set_scrollbar_mode(p11_textwin_1,LV_SCROLLBAR_MODE_OFF);//不显示滚动条    
    lv_obj_set_size(p11_textwin_1, 290, 40);//x,y
    lv_obj_set_pos(p11_textwin_1,10,20);//x,y
		lv_obj_add_style(p11_textwin_1, &p11_text_win_style, 0);//设置特性

	  lv_obj_t * p11_textwin_2 = lv_obj_create(version_win);//创建一个对象
    lv_obj_set_style_pad_all(p11_textwin_2,0,0); //padding 改为0
    lv_obj_set_scrollbar_mode(p11_textwin_2,LV_SCROLLBAR_MODE_ON);//不显示滚动条    
    lv_obj_set_size(p11_textwin_2, 310, 310);//x,y
    lv_obj_set_pos(p11_textwin_2,5,80);//x,y
		lv_obj_add_style(p11_textwin_2, &p11_text_win_style, 0);//设置特性



		lv_obj_t *label_0 = lv_label_create(p11_textwin_1); // 创建标签文本
		lv_obj_set_style_text_font(label_0, &major_font_30, 0);        // 设置标签文本
		lv_label_set_text(label_0, "定位信息 "); // 设置文本
		//lv_obj_set_pos(label_0,40,110);
		lv_obj_align_to(label_0,p11_textwin_1,LV_ALIGN_CENTER,0,0);





#if P11_USE_SPAN	
		//创建span标题框
		static lv_style_t span_style; 				/* 定义普通样式 */
    lv_style_init(&span_style); 					/* 通样式初始化 */
    lv_style_set_border_width(&span_style, 3); /* 设置边框宽度 */    
    lv_style_set_border_color(&span_style, lv_palette_main(LV_PALETTE_BLUE_GREY)); /* 设置边框颜色 */
    lv_style_set_pad_all(&span_style, 2);
		
    lv_obj_t * spans = lv_spangroup_create(version_win); /* 创建 spans 组 */
		lv_obj_set_width(spans, 240); /* 设置该部件的宽度 */
    lv_obj_set_height(spans, 40); /* 创建该部件的高度 */
    lv_obj_align(spans,LV_ALIGN_TOP_MID,0,20);       
    lv_obj_add_style(spans, &span_style, 0);						/* 把 spans 部件添加到普通样式当中 */        
    lv_spangroup_set_align(spans, LV_TEXT_ALIGN_CENTER);/* 设置该部件的文本对齐模式 */        
    lv_spangroup_set_indent(spans, 0);									/* 设置该部件的文本缩进 */        
    lv_spangroup_set_mode(spans, LV_SPAN_MODE_BREAK);		/* 设置该部件的模式 */
   //lv_spangroup_set_overflow(spans,LV_SPAN_OVERFLOW_ELLIPSIS);
    lv_span_t * text_span = lv_spangroup_new_span(spans); 		/* 创建 spans 描述符 */
    lv_span_set_text(text_span, "版本信息 "); 									/* 设置要显示的文本 */       
    lv_style_set_text_color(&text_span->style, lv_palette_main(LV_PALETTE_NONE));/* 设置该文本的颜色 */        
    lv_style_set_text_font(&text_span->style, &major_font_30);/* 设置该文本的字体 */
#endif


	}

}


















